package dletc.demo;

import java.util.ArrayList;

//创建了一个带有泛型的类，T：表示为一个未知的数据类型，
public class Other<T> {
	/**
	 * 泛型不可以使用在构造方法、静态变量、静态方法、自定义异常上
	 */
	String name;
	int age;
	
	//类的内部成员都可以使用这个泛型

	//未知数据类型的成员变量
	T other;//还没有想好用什么数据类型表示，可以使用泛型
	
	
	
	public Other() {
		//创建一个泛型数组
		//T[] t = new T[10];//不可以
		  T[] t = (T[])new Object[10];
		
		String[] s = new String[10];
	}

	public Other(String name, int age, T other){
		this.name = name;
		this.age = age;
		this.other = other;
	}

	public T getOther() {
		return other;
	}

	public void setOther(T other) {
		this.other = other;
	}
	
	/*//静态方法里是不允许使用泛型的
	public static void method(){
		System.out.println(other);
	}
	*/
	//设计一个带有泛型的方法
	public <E> ArrayList<E> copyList(E[] arr){
		
		ArrayList<E> list = new ArrayList<>();
		
		for (int i = 0; i < arr.length; i++) {
			list.add(arr[i]);
		}
		return list;
		
	}
	
}




